home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / prog_d / tpop3.zip / MAILUTIL.PAS < prev    next >
Pascal/Delphi Source File  |  1996-04-10  |  1KB  |  61 lines

  1. unit mailutil;
  2.  
  3. interface
  4.  
  5. uses SysUtils, WinTypes, WinProcs;
  6.  
  7. procedure BreakLine(const AddrStr : string; var Addr,Name : string);
  8. function JoinLines(const Addr,Name : string) : string;
  9. function SocketErrorStr(ErrNo : word) : string;
  10.  
  11. implementation
  12.  
  13. procedure BreakLine(const AddrStr : string; var Addr,Name : string);
  14. {Braek the line with | symbol,
  15. if no |, then assume s=address}
  16. var
  17.   i : byte;
  18. begin
  19.   i:=Pos('|',AddrStr);
  20.   if i=0 then
  21.   begin
  22.     Addr:=AddrStr;
  23.     Name:='';
  24.   end
  25.   else
  26.   begin
  27.     Addr:=Copy(AddrStr,1,i-1);
  28.     Name:=Copy(AddrStr,i+1,Length(AddrStr)-i);
  29.   end;
  30. end;
  31.  
  32. function JoinLines(const Addr,Name : string) : string;
  33. begin
  34.   Result:=Addr;
  35.   if Name<>'' then
  36.     Result:=Concat(Result,'|',Name);
  37. end;
  38.  
  39. function SocketErrorStr(ErrNo : word) : string;
  40. var
  41.   LibHandle : THandle;
  42.   Buf : PChar;
  43. begin
  44.   if ErrNo<>0 then
  45.   begin
  46.     LibHandle:=LoadLibrary('wserr.dll');
  47.     if LibHandle>=HINSTANCE_ERROR then
  48.     begin
  49.       Buf:=StrAlloc(255);
  50.       LoadString(LibHandle,ErrNo,Buf,255);
  51.       Result:=StrPas(Buf);
  52.       StrDispose(Buf);
  53.       FreeLibrary(LibHandle);
  54.     end;
  55.     if Result='' then
  56.       Result:='Winsock Error No. '+IntToStr(ErrNo);
  57.   end;
  58. end;
  59.  
  60. end.
  61.